package com.cn.mmd.model;

import java.util.ArrayList;
import java.util.List;

public class TeacherExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TeacherExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andTeacheridIsNull() {
            addCriterion("teacherId is null");
            return (Criteria) this;
        }

        public Criteria andTeacheridIsNotNull() {
            addCriterion("teacherId is not null");
            return (Criteria) this;
        }

        public Criteria andTeacheridEqualTo(String value) {
            addCriterion("teacherId =", value, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeacheridNotEqualTo(String value) {
            addCriterion("teacherId <>", value, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeacheridGreaterThan(String value) {
            addCriterion("teacherId >", value, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeacheridGreaterThanOrEqualTo(String value) {
            addCriterion("teacherId >=", value, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeacheridLessThan(String value) {
            addCriterion("teacherId <", value, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeacheridLessThanOrEqualTo(String value) {
            addCriterion("teacherId <=", value, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeacheridLike(String value) {
            addCriterion("teacherId like", value, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeacheridNotLike(String value) {
            addCriterion("teacherId not like", value, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeacheridIn(List<String> values) {
            addCriterion("teacherId in", values, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeacheridNotIn(List<String> values) {
            addCriterion("teacherId not in", values, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeacheridBetween(String value1, String value2) {
            addCriterion("teacherId between", value1, value2, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeacheridNotBetween(String value1, String value2) {
            addCriterion("teacherId not between", value1, value2, "teacherid");
            return (Criteria) this;
        }

        public Criteria andTeachernameIsNull() {
            addCriterion("teacherName is null");
            return (Criteria) this;
        }

        public Criteria andTeachernameIsNotNull() {
            addCriterion("teacherName is not null");
            return (Criteria) this;
        }

        public Criteria andTeachernameEqualTo(String value) {
            addCriterion("teacherName =", value, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachernameNotEqualTo(String value) {
            addCriterion("teacherName <>", value, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachernameGreaterThan(String value) {
            addCriterion("teacherName >", value, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachernameGreaterThanOrEqualTo(String value) {
            addCriterion("teacherName >=", value, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachernameLessThan(String value) {
            addCriterion("teacherName <", value, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachernameLessThanOrEqualTo(String value) {
            addCriterion("teacherName <=", value, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachernameLike(String value) {
            addCriterion("teacherName like", value, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachernameNotLike(String value) {
            addCriterion("teacherName not like", value, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachernameIn(List<String> values) {
            addCriterion("teacherName in", values, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachernameNotIn(List<String> values) {
            addCriterion("teacherName not in", values, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachernameBetween(String value1, String value2) {
            addCriterion("teacherName between", value1, value2, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachernameNotBetween(String value1, String value2) {
            addCriterion("teacherName not between", value1, value2, "teachername");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeIsNull() {
            addCriterion("teacherCollege is null");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeIsNotNull() {
            addCriterion("teacherCollege is not null");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeEqualTo(String value) {
            addCriterion("teacherCollege =", value, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeNotEqualTo(String value) {
            addCriterion("teacherCollege <>", value, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeGreaterThan(String value) {
            addCriterion("teacherCollege >", value, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeGreaterThanOrEqualTo(String value) {
            addCriterion("teacherCollege >=", value, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeLessThan(String value) {
            addCriterion("teacherCollege <", value, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeLessThanOrEqualTo(String value) {
            addCriterion("teacherCollege <=", value, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeLike(String value) {
            addCriterion("teacherCollege like", value, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeNotLike(String value) {
            addCriterion("teacherCollege not like", value, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeIn(List<String> values) {
            addCriterion("teacherCollege in", values, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeNotIn(List<String> values) {
            addCriterion("teacherCollege not in", values, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeBetween(String value1, String value2) {
            addCriterion("teacherCollege between", value1, value2, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachercollegeNotBetween(String value1, String value2) {
            addCriterion("teacherCollege not between", value1, value2, "teachercollege");
            return (Criteria) this;
        }

        public Criteria andTeachersexIsNull() {
            addCriterion("teacherSex is null");
            return (Criteria) this;
        }

        public Criteria andTeachersexIsNotNull() {
            addCriterion("teacherSex is not null");
            return (Criteria) this;
        }

        public Criteria andTeachersexEqualTo(String value) {
            addCriterion("teacherSex =", value, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeachersexNotEqualTo(String value) {
            addCriterion("teacherSex <>", value, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeachersexGreaterThan(String value) {
            addCriterion("teacherSex >", value, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeachersexGreaterThanOrEqualTo(String value) {
            addCriterion("teacherSex >=", value, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeachersexLessThan(String value) {
            addCriterion("teacherSex <", value, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeachersexLessThanOrEqualTo(String value) {
            addCriterion("teacherSex <=", value, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeachersexLike(String value) {
            addCriterion("teacherSex like", value, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeachersexNotLike(String value) {
            addCriterion("teacherSex not like", value, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeachersexIn(List<String> values) {
            addCriterion("teacherSex in", values, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeachersexNotIn(List<String> values) {
            addCriterion("teacherSex not in", values, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeachersexBetween(String value1, String value2) {
            addCriterion("teacherSex between", value1, value2, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeachersexNotBetween(String value1, String value2) {
            addCriterion("teacherSex not between", value1, value2, "teachersex");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionIsNull() {
            addCriterion("teacherPosition is null");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionIsNotNull() {
            addCriterion("teacherPosition is not null");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionEqualTo(String value) {
            addCriterion("teacherPosition =", value, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionNotEqualTo(String value) {
            addCriterion("teacherPosition <>", value, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionGreaterThan(String value) {
            addCriterion("teacherPosition >", value, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionGreaterThanOrEqualTo(String value) {
            addCriterion("teacherPosition >=", value, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionLessThan(String value) {
            addCriterion("teacherPosition <", value, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionLessThanOrEqualTo(String value) {
            addCriterion("teacherPosition <=", value, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionLike(String value) {
            addCriterion("teacherPosition like", value, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionNotLike(String value) {
            addCriterion("teacherPosition not like", value, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionIn(List<String> values) {
            addCriterion("teacherPosition in", values, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionNotIn(List<String> values) {
            addCriterion("teacherPosition not in", values, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionBetween(String value1, String value2) {
            addCriterion("teacherPosition between", value1, value2, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherpositionNotBetween(String value1, String value2) {
            addCriterion("teacherPosition not between", value1, value2, "teacherposition");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberIsNull() {
            addCriterion("teacherphoneNumber is null");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberIsNotNull() {
            addCriterion("teacherphoneNumber is not null");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberEqualTo(String value) {
            addCriterion("teacherphoneNumber =", value, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberNotEqualTo(String value) {
            addCriterion("teacherphoneNumber <>", value, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberGreaterThan(String value) {
            addCriterion("teacherphoneNumber >", value, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberGreaterThanOrEqualTo(String value) {
            addCriterion("teacherphoneNumber >=", value, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberLessThan(String value) {
            addCriterion("teacherphoneNumber <", value, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberLessThanOrEqualTo(String value) {
            addCriterion("teacherphoneNumber <=", value, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberLike(String value) {
            addCriterion("teacherphoneNumber like", value, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberNotLike(String value) {
            addCriterion("teacherphoneNumber not like", value, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberIn(List<String> values) {
            addCriterion("teacherphoneNumber in", values, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberNotIn(List<String> values) {
            addCriterion("teacherphoneNumber not in", values, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberBetween(String value1, String value2) {
            addCriterion("teacherphoneNumber between", value1, value2, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherphonenumberNotBetween(String value1, String value2) {
            addCriterion("teacherphoneNumber not between", value1, value2, "teacherphonenumber");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolIsNull() {
            addCriterion("teacherSchool is null");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolIsNotNull() {
            addCriterion("teacherSchool is not null");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolEqualTo(String value) {
            addCriterion("teacherSchool =", value, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolNotEqualTo(String value) {
            addCriterion("teacherSchool <>", value, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolGreaterThan(String value) {
            addCriterion("teacherSchool >", value, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolGreaterThanOrEqualTo(String value) {
            addCriterion("teacherSchool >=", value, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolLessThan(String value) {
            addCriterion("teacherSchool <", value, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolLessThanOrEqualTo(String value) {
            addCriterion("teacherSchool <=", value, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolLike(String value) {
            addCriterion("teacherSchool like", value, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolNotLike(String value) {
            addCriterion("teacherSchool not like", value, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolIn(List<String> values) {
            addCriterion("teacherSchool in", values, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolNotIn(List<String> values) {
            addCriterion("teacherSchool not in", values, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolBetween(String value1, String value2) {
            addCriterion("teacherSchool between", value1, value2, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacherschoolNotBetween(String value1, String value2) {
            addCriterion("teacherSchool not between", value1, value2, "teacherschool");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardIsNull() {
            addCriterion("teacherIdCard is null");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardIsNotNull() {
            addCriterion("teacherIdCard is not null");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardEqualTo(String value) {
            addCriterion("teacherIdCard =", value, "teacheridcard");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardNotEqualTo(String value) {
            addCriterion("teacherIdCard <>", value, "teacheridcard");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardGreaterThan(String value) {
            addCriterion("teacherIdCard >", value, "teacheridcard");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardGreaterThanOrEqualTo(String value) {
            addCriterion("teacherIdCard >=", value, "teacheridcard");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardLessThan(String value) {
            addCriterion("teacherIdCard <", value, "teacheridcard");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardLessThanOrEqualTo(String value) {
            addCriterion("teacherIdCard <=", value, "teacheridcard");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardLike(String value) {
            addCriterion("teacherIdCard like", value, "teacheridcard");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardNotLike(String value) {
            addCriterion("teacherIdCard not like", value, "teacheridcard");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardIn(List<String> values) {
            addCriterion("teacherIdCard in", values, "teacheridcard");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardNotIn(List<String> values) {
            addCriterion("teacherIdCard not in", values, "teacheridcard");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardBetween(String value1, String value2) {
            addCriterion("teacherIdCard between", value1, value2, "teacheridcard");
            return (Criteria) this;
        }

        public Criteria andTeacheridcardNotBetween(String value1, String value2) {
            addCriterion("teacherIdCard not between", value1, value2, "teacheridcard");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}